C++ 如何跨平台判断操作系统是32位还是64位?

您所在的位置:网站首页 qt 位操作 C++ 如何跨平台判断操作系统是32位还是64位?

C++ 如何跨平台判断操作系统是32位还是64位?

#C++ 如何跨平台判断操作系统是32位还是64位?| 来源: 网络整理| 查看: 265

题主你这问题,成心折腾程序员。。

首先得说明一下,不调用系统API,又想知道与系统相关的东西,这就像你让我进门拿东西,又把门锁上不给我钥匙一样,正统方法是根本不可能做到的(且不深究这么做有什么意义,本来一个很简单的函数就能解决的问题绕个圈)。那就得走曲道破窗而入。

其次是跨平台不是语言本身的功能,是人为去调配的,根据已知的一些信息,去把这个开关拔到win或是linux一端(或其他)。

然后sizeof指令是编译平台相关的,他不是由当前操作系统的位数决定的,而是由通过编译器期望生成的可执行文件运行的操作系统决定的,即比如:我编译器设置好目标的平台是64位win10,那么sizeof求出来的字节就和64位win10相匹配。

最后提供曲线进屋方案:

跨平台方法,由宏决定,win下关键宏_WIN32等等,linux关键宏linux;

操作系统位数判断方法提供一个不稳定方案:由于64位系统与32位系统在系统文件及系统文件夹上有所不同,由此可以进行对比判断,如:win平台判断系统根目录有无program files(x86)文件夹来判断,要是不保险可以多找几个来判断,同理linux下可以判断有无/lib64来判断。。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3